package arrays;

/**
 * 题目：合并两个有序数组
 * 其中一个数组的长度能够容纳下两个数组的所有元素
 * @Author Gavin
 * @date 2022.03.06 11:51
 */
public class array_19 {
    /**
     * 解题思路：
     * 为了减少数组中的元素的移动，所以我们从数组的右边开始比较
     */
    public static void solution(int[] nums1,int m,int[] nums2,int n){
        int i=nums1.length-1,j=nums2.length-1,k=m+n-1;
        //这里就假设nums1的容量可以容纳所有的数据
        while (i>=0&&j>=0){
            if(nums1[i]>nums2[j]){
                nums1[k--]=nums1[i--];
            }else{
                nums1[k--]=nums2[j--];
            }
        }
        while (j>0)nums1[k--]=nums2[j--];
    }
}
